The present invention relates generally to communication networks, and more specifically, to routing communications among computer networks.
Computer networks consist of a number of computer systems coupled together with a bus, rings, or other medium so that they can communicate with each other. The computer network may be interconnected with a series of gateway circuits. Each gateway identifies all destinations for which it has a direct connection with. Paths to other destinations are obtained through an interchange of routing transmissions with adjacent gateways. For each identified path, the gateway stores the identity of the gateway circuit which is the next hop on the path, and a vector of metric information describing the path. A typical distance vector protocol retains information on the distance (total metric or distance, such as hop count) and the vector (the next hop) to use when computing the best path to a destination. For example, if all the routers (1-5) in the network of FIG. 1 are running Routing Information Protocol (RIP), router 2 chooses the path to network A by examining the hop count through each available path. Since the path through router 3 (3→4→5) is three hops, and the path through router 1 (1→5) is two hops, router 2 chooses the path through router 1 and discards the information it learned through router 3. If the path between router 1 and network A goes down, router 2 loses all connectivity with this destination until it times out the route of its routing table (three update periods or 90 seconds), and router 3 re-advertises the route (which occurs every 30 seconds in RIP). Not including any hold-down time, it will take between 90 and 120 seconds for router 2 to switch the path from router 1 to router 3.
EIGRP (Enhanced Interior Gateway Routing Protocol) is a protocol that allows a number of gateways to coordinate their routing and provides an improvement over RIP. EIGRP uses distance vector routing technology so that each router need not know all the router's link relationships with the entire network. Each router advertises destinations with a corresponding distance and upon receiving the information adjusts the distance and propagates it to neighboring routers. EIGRP, instead of counting on full periodic updates to re-converge as with RIP, builds a topology table from each of its neighbor's advertisements (rather than discarding the data), and converges by either looking for a likely loop-free route in the topology table, or, if it knows of no other route, by querying its neighbors. Thus, with EIGRP, router 2 saves the information it received from both routers 1 and 3. Router 2 chooses the path through router 1 as its best path (the successor) and the path through router 3 as a loop-free path (a feasible successor). When the path through router 1 becomes unavailable, router 2 examines its topology table and, finding a feasible successor, begins using the path through router 3 immediately.
One drawback to EIGRP is the impact to a router having a large number of connections, when a single connection is lost. FIG. 2 illustrates a spoke and hub arrangement with router C positioned as the hub (or core) router and routers 6, 7, and 8 positioned as spokes. Conventional systems utilizing EIGRP would have all routers configured to provide the same type and amount of route information to its neighbors. This configuration works well with a limited amount of routers. However, in a hub and spoke network with a large number of neighbors (e.g., 500), if a single spoke is lost the time required for the hub to contact all of its neighbors is excessive. For example, if a failure occurs between router C and router 6, router C will incur a spike in its load to generate 499 queries, with one query being sent to each of the remaining neighbors. Router C will also have to deal with the 499 replies as each of the routers inform router C that they have no other paths available for the router being questioned. This must be done for each of the routes learned by router 6.
There is, therefore, a need for a system and method for selectively querying a large number of neighbors when a failure in one of the network connections occurs.